
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Pattern;

public class CrearCalendario extends SeleneseTestCase {
	private Connection connect = null;
	private Statement statement = null;
	private PreparedStatement preparedStatement = null;
	private ResultSet resultSet = null;
	@Before
	public void setUp() throws Exception {
		selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:8081/");
		selenium.start();
	}

	@Test
	public void testCrearCalendario() throws Exception {
		caso1();
		caso2();
		assertTrue(consulta());
		caso3();
		caso4();		
	}
	//CASO EQUIPOS MENOR A 3
	public void caso1(){
		selenium.open("/Miscore/ingresar.php");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Calendario");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=crear");
		selenium.waitForPageToLoad("30000");
		assertTrue(selenium.isTextPresent("El numero de equipos es menor a 3"));
	}

	//CASO EXITOSO OK
	public void caso2(){
		selenium.open("/Miscore/ingresar.php");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Calendario");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=crear");
		selenium.waitForPageToLoad("30000");
		selenium.click("id=dp1321420221355");
		selenium.click("link=18");
		selenium.click("id=dp1321420221356");
		selenium.click("link=19");
		selenium.click("id=dp1321420221357");
		selenium.click("link=20");
		selenium.click("id=aceptar_cal");
		assertTrue(selenium.isTextPresent("Registro exitoso de jornadas"));
	}
	
	//error de repeticion
	public void caso3(){
		selenium.open("/Miscore/ingresar.php");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Calendario");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=crear");
		selenium.waitForPageToLoad("30000");
		selenium.type("id=dp1321421405264", "18/11/2011");
		selenium.click("id=dp1321421405265");
		selenium.type("id=dp1321421405265", "18/11/2011");
		selenium.click("id=dp1321421405266");
		selenium.type("id=dp1321421405266", "19/11/2011");
		selenium.click("css=div.botones_calenadario");
		selenium.click("id=aceptar_cal");
		verifyTrue(selenium.isTextPresent("Por favor validar las fechas, no pueden ser: 18/11/2011 - 18/11/2011"));

	}
	
	//Error campo vacio
	public void caso4(){
		selenium.open("/Miscore/ingresar.php");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Calendario");
		selenium.waitForPageToLoad("30000");
		selenium.click("name=crear");
		selenium.waitForPageToLoad("30000");
		selenium.click("id=dp1321421985132");
		selenium.click("link=17");
		selenium.click("id=dp1321421985133");
		selenium.click("link=18");
		selenium.click("id=aceptar_cal");
		verifyTrue(selenium.isTextPresent("campos vacios"));
		
	}
	public boolean consulta() throws Exception {
		 Connection conn = null;
		  String url = "jdbc:mysql://localhost:3306/";
		  String dbName = "mydb";
		  String driver = "com.mysql.jdbc.Driver";
		  String userName = "root"; 
		  String password = "";
		  try {
			  Class.forName(driver).newInstance();
		  conn = DriverManager.getConnection(url+dbName,userName,password);
		  statement=conn.createStatement();
		  resultSet = statement.executeQuery("select * from partido");
		  comparar(resultSet);
		  System.out.println("Connected to the database");
		  conn.close();
		  System.out.println("Disconnected from database");
		  return true;
		  } catch (Exception e) {
		  e.printStackTrace();
		  return false;
		  }
}

	private void comparar(ResultSet resultSet) throws SQLException {
	
		while (resultSet.next()) {
			int id = resultSet.getInt("id_partido");
			String golesL = resultSet.getString("golesL");
			String golesV = resultSet.getString("golesV");
			String id_torneo = resultSet.getString("torneo_id_torneo");
			String fecha = resultSet.getString("fecha");
			
			if(golesL.equals("0")&&golesV.equals("0")
					&&id_torneo.equals("9")&&fecha.equals("2011-11-17")){
				System.out.println("entre");			
					assertTrue(fecha.equals("2011-11-17"));										
			}
			if(golesL.equals("0")&&golesV.equals("0")
					&&id_torneo.equals("9")&&fecha.equals("2011-11-18")){
				System.out.println("entre");			
					assertTrue(fecha.equals("2011-11-18"));										
			}
			if(golesL.equals("0")&&golesV.equals("0")
					&&id_torneo.equals("9")&&fecha.equals("2011-11-19")){
				System.out.println("entre");			
					assertTrue(fecha.equals("2011-11-19"));										
			}
		}
	}
	@After
	public void tearDown() throws Exception {
		selenium.stop();
	}
}
